/*
 * @lc app=leetcode.cn id=70 lang=golang
 *
 * [70] 爬楼梯
 */

// @lc code=start
func climbStairs(n int) int {
	// 到达第n个台阶，可以从第n-1和第n-2阶台阶到达
	// 因此，到达第n阶有f(n)种方法，有f(n)=f(n-1)+f(n-2)
	if n <= 2 {
		return n
	}

	f1 := 1
	f2 := 2
	fn := 0
	for i := 3; i <= n; i++ {
		fn = f1 + f2
		f1 = f2
		f2 = fn
		// 语法糖
		// f1,f2=f2,f1+f2
		// 最后 return f2
	}
	return fn
}

// @lc code=end

